// 单据表，出入库主表
const {DataTypes, db } = require("../db");
db.define('invoice', {
id: {type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true,comment:'表自增ID'},
tenantId:{type: DataTypes.INTEGER,allowNull:false,comment:'租户ID'}, 
printNo:{type: DataTypes.INTEGER,defaultValue:0,comment:'打印次数'}, 
billState:{type: DataTypes.STRING(20),allowNull:false,comment:'单据状态 draft,accounted,wasted,deleted'}, 
billNo:{type: DataTypes.STRING(128),allowNull:false,comment:'单据编号'}, 
billDate:{type: DataTypes.STRING(10),allowNull:false,comment:'单据草稿日期'}, 
billType:{type: DataTypes.STRING(50),allowNull:false,comment:'PO采购订单 OI其他入库OO其它出库 PUR采购入库 BAL初期余额'}, 
transType:{type: DataTypes.INTEGER,allowNull:false,comment:'业务类型'}, 
transTypeName:{type: DataTypes.STRING(50),allowNull:false,comment:'业务名称'}, 
otherType:{type: DataTypes.STRING(100),defaultValue:(''),comment:'其它出入库存类别'}, 
totalAmount:{type: DataTypes.DECIMAL(18, 2),defaultValue:0,comment:'购货总金额(不算totalDiscount)'}, 
totalDiscount:{type: DataTypes.DECIMAL(18, 2),defaultValue:0,comment:'返现折扣金额'}, 
disAmount:{type: DataTypes.DECIMAL(18, 2),defaultValue:0,comment:'整单折扣优惠金额,收/付款优惠金额'}, 
amount:{type: DataTypes.DECIMAL(18, 2),defaultValue:0,comment:'折扣后金额(totalAmount-totalDiscount-discount)'}, 
ysAmount:{type: DataTypes.DECIMAL(18, 2),defaultValue:0,comment:'预收款抵扣金额'}, 
rpAmount:{type: DataTypes.DECIMAL(18, 2),defaultValue:0,comment:'本次付款'}, 
arrears:{type: DataTypes.DECIMAL(18, 2),defaultValue:0,comment:'本次欠款'}, 
hxAmount:{type: DataTypes.DECIMAL(20, 2),defaultValue:0,comment:'已核销金额'}, 
yhAmount:{type: DataTypes.DECIMAL(18, 2),defaultValue:0,comment:'收/付款优惠金额'}, 
leftAmount:{type: DataTypes.DECIMAL(20, 2),defaultValue:0,comment:'还结余金额'}, 
hxAt:{type: DataTypes.STRING(1000),comment:'核销时间，多时间逗号分隔'}, 
buId:{type: DataTypes.INTEGER,defaultValue:0,comment:'contact表ID.如果是员工支出单（153406），则是staff表Id,'}, 
accId:{type: DataTypes.INTEGER,defaultValue:0,comment:'结算账户ID'}, 
accAmount:{type: DataTypes.DECIMAL(20, 2),comment:'账户1收钱金额'}, 
accId1:{type: DataTypes.INTEGER,defaultValue:0,comment:'账号1ID'}, 
accAmount1:{type: DataTypes.DECIMAL(20, 2),comment:'账户2收钱金额'}, 
salesId:{type: DataTypes.INTEGER,defaultValue:0,comment:'销售人员ID'}, 
sendManId:{type: DataTypes.INTEGER,defaultValue:0,comment:'送货人,如果是进货单 则是收货人'}, 
goods:{type: DataTypes.TEXT,defaultValue:(''),comment:'了表的json数据，方便搜索'}, 
subRemark:{type: DataTypes.TEXT,defaultValue:(''),comment:'子表备注'}, 
remark:{type: DataTypes.STRING(2000),defaultValue:(''),comment:'备注'}, 
doId:{type: DataTypes.INTEGER,defaultValue:0,comment:'经办人ID'}, 
isAuto:{type: DataTypes.INTEGER,defaultValue:0,comment:'系统自动生成票据1'}, 
isLoad:{type: DataTypes.INTEGER,defaultValue:0,comment:'0未装车，1已装车，2已送货'}, 
byCell:{type: DataTypes.INTEGER,defaultValue:0,comment:'0电脑1手机2终端自助'}, 
cby:{type: DataTypes.INTEGER,defaultValue:0,comment:'制单人'}, 
createdAt:{type: DataTypes.STRING(20),allowNull:false,comment:'创建时间'}, 
accountedBy:{type: DataTypes.INTEGER,defaultValue:0,comment:'审核人ID'}, 
accountedAt:{type: DataTypes.STRING(20),defaultValue:(''),comment:'审核时间'}, 
wastedBy:{type: DataTypes.INTEGER,comment:'红冲人'}, 
wastedAt:{type: DataTypes.STRING(20),defaultValue:(''),comment:'红冲时间'}, 
sendDate:{type: DataTypes.STRING(10),defaultValue:(''),comment:'送货日期'}, 
deletedBy:{type: DataTypes.INTEGER,comment:'删除人'}, 
deletedAt:{type: DataTypes.STRING(20),defaultValue:(''),comment:'删除时间'}, 
lastPayTime:{type: DataTypes.STRING(10),defaultValue:(''),comment:'最后付款日期'}, 
qty:{type: DataTypes.DECIMAL(18, 2),defaultValue:0,comment:'总数量不分单位'}, 
isYs:{type: DataTypes.INTEGER,defaultValue:0,comment:'有用纯预收金额抵扣的票据'}, 
isYz:{type: DataTypes.TINYINT,defaultValue:0,comment:'预支1 '}, 
isFt:{type: DataTypes.TINYINT,defaultValue:0,comment:'=1 分摊'}, 
isGz:{type: DataTypes.TINYINT,defaultValue:0,comment:'=1挂账'}, 
billMonth:{type: DataTypes.STRING(2),comment:'月份'}, 
billYear:{type: DataTypes.STRING(4),comment:'年份'}, 
employeeId:{type: DataTypes.INTEGER,defaultValue:0,comment:'预支款 如果是员工则是员工ID'}, 
isHc:{type: DataTypes.INTEGER,defaultValue:0,comment:'红冲 0/1'}, 
byIid:{type: DataTypes.INTEGER,defaultValue:0,comment:'生成该票据的票据ID'}, 
files:{type: DataTypes.INTEGER,defaultValue:0,comment:'附件张数'}, 
updatedId:{type: DataTypes.INTEGER,comment:''}, 
otherTypeId:{type: DataTypes.INTEGER,defaultValue:0,comment:'其它入库ID,科目ID'}, 
postData:{type: DataTypes.TEXT,defaultValue:(''),comment:'原始数据'}, 
deliverIds:{type: DataTypes.STRING(255),defaultValue:(''),comment:'多选送货员Id'}, 
deliverNames:{type: DataTypes.STRING(255),defaultValue:(''),comment:'多选送货员名称'}, 
isDelete:{type: DataTypes.TINYINT,defaultValue:0,comment:'1删除  0正常'}, 
updatedAt:{type: DataTypes.STRING(20),comment:'最后更新时间'}, 
isInit:{type: DataTypes.INTEGER,defaultValue:0,comment:'期初票据，期初票据不生成凭证，只作收付款勾选票据用。'}, 
batchReceiptId:{type: DataTypes.INTEGER,comment:'指收款ID'}, 
byScan:{type: DataTypes.INTEGER,defaultValue:0,comment:'扫码制单'}, 
toYs:{type: DataTypes.INTEGER,comment:'临时处理预收'}, 
locationId:{type: DataTypes.INTEGER,comment:''}, 
jkState:{type: DataTypes.STRING(30),comment:'交款状态 待审核 已审核'}, 
quickSearch:{type: DataTypes.STRING(5000),comment:'快速搜索'},
orgin:{type: DataTypes.STRING(30),comment:'数据来源'},

}, {
    tableName: 'invoice',
    timestamps: false,
    comment: '单据表，出入库主表',
    indexes:[{"unique":true,"name":"票号唯一","fields":["tenantId"," billNo"]}]
});